import http from '@ohos.net.http';

// 定义基础URL，所有请求都会基于这个URL发送，要定时更新
const BASE_URL: string = 'http://localhost:8080/api';

// 发送DELETE请求的函数
export function httpRequestDel(url: string) {
  url = BASE_URL + url;
  console.log(url)
  let httpRequest = http.createHttp();
  var header = {
    'Content-Type': 'application/json',
  };
  let responseResult = httpRequest.request(url, {
    method: http.RequestMethod.DELETE,
    header: header
  });
  return responseResult;
}

// 发送PUT请求的函数
export function httpRequestPut(url: string, params: any) {
  // 拼接完整的请求URL
  url = BASE_URL + url;
  console.info(url)
  let httpRequest = http.createHttp();
  var header = {
    'Content-Type': 'application/json',
  };
  let responseResult = httpRequest.request(url, {
    method: http.RequestMethod.PUT,
    extraData: params, // 额外的请求数据
    header: header
  });
  // 返回请求结果
  return responseResult;
}

// 发送POST请求的函数
export function httpRequestPost(url: string, params: any) {
  // 拼接完整的请求URL
  url = BASE_URL + url;
  console.info(url)
  let httpRequest = http.createHttp();
  // 定义请求头，这里指定了接受所有类型的响应，并设置了发送内容的类型为表单数据
  var header = {
    'Accept': '*/*',
    "Content-Type": "application/json",
  };
  // 发送POST请求，包含额外的请求数据
  let responseResult = httpRequest.request(url, {
    method: http.RequestMethod.POST,
    extraData: params, // 额外的请求数据
    header: header
  });
  return responseResult;
}

// 发送GET请求的函数
export function httpRequestGet(url: string, query?: any) {
  // 拼接完整的请求URL，包括查询参数（如果存在）
  if (query) {
    // 如果query是对象，可以转换为查询字符串
    if (typeof query === 'object') {
      console.log(JSON.stringify(query))
      const queryString = Object.keys(query)
        .map(key => `id=${encodeURIComponent(query[key])}`)
        .join('&');
      url = BASE_URL + url + '?' + queryString;
    } else {
      // 如果query是字符串，直接拼接到URL后面
      url = BASE_URL + url + query;
    }
  } else {
    // 如果没有query参数，直接使用基础URL和路径
    url = BASE_URL + url;
  }

  console.info(url)
  // 创建HTTP请求实例
  let httpRequest = http.createHttp();
  // 定义请求头
  var header = {
    'Content-Type': 'application/json',
  };
  // 发送GET请求
  let responseResult = httpRequest.request(url, {
    method: http.RequestMethod.GET,
    header: header
  });

  // 返回请求结果
  return responseResult;
}
